Data storage systems are arrangements of hardware and software that typically include multiple storage processors coupled to arrays of non-volatile storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives. The storage processors service I/O operations that arrive from host machines. The received I/O operations specify storage objects that are to be written, read, created, or deleted. The storage processors run software that manages incoming I/O operations and performs various data processing tasks to organize and secure the host data stored on the non-volatile storage devices.
In some previous data storage systems, non-volatile storage devices have been organized into physical disk groups based on the level of performance they provide. Storage from the physical disk groups has been allocated across multiple storage groups, in order to meet service level objectives (SLOs) of the storage groups. Each storage group includes a set of storage objects (e.g. logical disks or “LUNs”) that are used by one or more applications to store data. The service level objective for each storage group indicates an average response time target for I/O operations performed on the storage objects within the storage group.
When the pattern of I/O operations performed on a storage group causes the storage group to begin missing its service level objective, an increased amount of high performance storage resources may be allocated to that storage group, from a physical disk group containing high performance non-volatile storage, in order to reduce the average response time for I/O operations performed on the storage objects within the storage group. For example, when the performance of a storage group begins to miss its service level objective, in order to improve the performance of the storage group, host data that is most frequently accessed within the storage group may be migrated to storage resources allocated from the high performance disk group. By allocating storage resources from the high performance disk group to store the most frequently accessed host data in the storage group, previous systems have been able to reduce the average response time for I/O operations to the storage group, in order to cause the storage group to resume meeting its service level objective.